import { loginAPI } from '@/api/user'
import { getToken, setToken } from '@/utils/auth'
export default {
  namespaced: true,
  // 状态
  state: {
    token: getToken() || '' // 用户token
  },
  // 修改状态的唯一方法（同步修改）
  mutations: {
    setToken(state, token) {
      state.token = token
      setToken(token)
    }
  },
  // 异步函数
  actions: {
    async asyncLogin(ctx, { username, password }) {
      // 1.调用异步请求 登录接口 -> token数据
      const res = await loginAPI({ username, password })
      // 2.调用mutation把拿到的token数据存入state中
      ctx.commit('setToken', res.data.token)
      // 易错：
      // 1.action函数可能拼写错（模块名/action名字）
      // 2.传参({username,password}) 一定要传一个对象并且里面必须按照接口文档字段来写
    }
  }
}
